package com.arron.algorithm;

/**
 * @Classname NumberOf1
 * @Date 2020/9/14 12:29
 * @Created by 刘
 *
 *1. 统计二进制中的1的个数
 *  如果是负数就用其补码表示
 */
public class NumberOf1 {

    public static void main(String[] args) {

    }

    /**
     * 返回二进制中1的个数
     * 常规思路：
     *      讲数n向右移，然后逐个和1进行与操作
     * @param n
     * @return
     */
    public int numberOf1(int n) {
        int count = 0;//记录二进制中1的个数
        while (n!=0){
            if ((n&1)!=0){
                count++;
            }
            //每次n就向右进行无符号右移
            n=n>>>1;
        }
        return count;
    }


}
